package ejemplo_1.rmi;

import interfaz.TDAManejoMesas;

import java.rmi.*;
import java.rmi.server.UnicastRemoteObject;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.*;

import javax.swing.JOptionPane;

import negocio.Mesa;

//import ejemplo_1.bean.Alumno;


public class GestionMesas extends UnicastRemoteObject implements TDAManejoMesas {

	private static final long serialVersionUID = 1L;
	private Connection con;

	private Set<Mesa> mesas;

	public GestionMesas() throws RemoteException {
		super();	
		mesas= new HashSet<Mesa>();
		//mozos.add(new Mozo(1,"Juan", "Si"));
		//mozos.add(new Mozo(2,"Pedro", "Si"));
		//mozos.add(new Mozo(4,"Maria", "Si"));
	}
	
/*Conexion*/
	public void connect()
	{
		try
		{
						
			Class.forName("net.sourceforge.jtds.jdbc.Driver");
			String url = "jdbc:jtds:sqlserver://127.0.0.1:1433/restaurant;tds=8.0;lastupdatecount=true";
			String usuario = "sa";
			String password = "123456";
			con = DriverManager.getConnection (url, usuario, password);
		}
		
        catch (Exception e)
        {
			JOptionPane.showMessageDialog(null, "Error al conectar a la BD", "Informacion", JOptionPane.INFORMATION_MESSAGE);
			
            System.err.println ("No se pudo conectar con la Base de Datos.(Restaurant)");
        }
		        
	}
/*Fin de Conexion*/

	@Override
		public ArrayList<Mesa> obtenerMesas(){
			
			try {
				this.connect();
				Statement s;
				s = con.createStatement();
				String legajo;
				String nombre;
				String estado;
				String sentencia1 = "SELECT idmesa, descripcion, idsector, " +
						"cantpersonas, idmozo, condicion, fecha, capacidad, " +
						"capacidadmaxima FROM Mesas";
				s.executeQuery(sentencia1);
				
				ResultSet rs= s.getResultSet();
				
				ArrayList<Mesa>mesas= new ArrayList<Mesa>();
				
				while (rs.next()){
					Mesa m = new Mesa();
					System.out.println("Mesa: " +rs.getString("descripcion"));
					m.setIdMesa(rs.getInt("idmesa"));
					//m.setDescripcion(rs.getString("descripcion"));
					
					
					mesas.add(m);
				}
				this.con.close();
				return mesas;
				
				
			}
			catch(SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
				System.out.println("Error Query: " + e.getMessage());
				return null;
			}

		
	
	}

	/*
	@Override
	public void envioMozo(Mozo mozo) throws RemoteException {
		// TODO Auto-generated method stub
		try{
			System.out.println("Entro al envioMozo INSERT");
			this.connect();
			Statement s;
			s = con.createStatement();
			String sentencia1 = "INSERT INTO mozo (idlegajo, nombre, estado) VALUES ('" + 
			mozo.getLegajo() + "','" + mozo.getNombre() + "','" + mozo.getEstado() + "')";
			s.executeUpdate(sentencia1);
			
			//ResultSet rs= s.getResultSet();
		}
		catch(SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			System.out.println("Error Query: " + e.getMessage());
			
		}

		
	}
*/
	/*
	@Override
	public Mozo obtenerMozos(int idlegajo) throws RemoteException {
		// TODO Auto-generated method stub
		try {
			this.connect();
			Statement s;
			s = con.createStatement();
			String sentencia1 = "SELECT idmozo, nombre, estado FROM Mozos WHERE idmozo = " + idlegajo;
			s.executeQuery(sentencia1);
			
			ResultSet rs= s.getResultSet();
			
			Mozo m = new Mozo();
			if(rs.next())
			{
				System.out.println("Mozo Seleccionado: " +rs.getString("nombre"));
				m.setLegajo(rs.getInt("idmozo"));
				m.setNombre(rs.getString("nombre"));
				m.setEstado(rs.getString("estado"));
				
			}
			this.con.close();
			return m;
			
			
		}
		catch(SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			System.out.println("Error Query: " + e.getMessage());
			return null;
		}

	}
*/
}